import axios from 'axios'
import Vue from 'vue'
import qs from 'qs'
// 配置默认值
axios.defaults.baseURL = 'http://127.0.0.1:5000/';
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use(function (res) {
    // 对响应数据做点什么
    // 如果状态码正常就返回提示
    if (res.data.code===200 && res.data.msg && res.data.msg!==''){
        Vue.prototype.$message({
            message: res.data.msg,
            type: 'success'
        });
    }
    return res;
}, function (error) {
    // 对响应错误做点什么
    // 如果状态码不正常就返回提示
    Vue.prototype.$message.error(error.response.data.msg)
    return Promise.reject(error);
});


//封装get请求
export function get(url,params) {
    return new Promise((resolve, reject) => {
        axios.get(url, {params:params})
            .then(res=>{
                resolve(res.data)
            })
            .catch(err=>{
                reject(err.data)
            })
    })
}

//封装post请求
export function post(url,data) {
    return new Promise((resolve, reject) => {
        axios.post(url,qs.stringify(data)).then(res=>{
            resolve(res.data)
        }).catch(err=>{
            reject(err.data)
        })

    })

}


export function $delete(url,params) {
    return new Promise(((resolve, reject) => {
        axios.delete(url,params).then(res=>{
            resolve(res.data)
        }).catch(err=>{
            reject(err.data)
        })
    }))
}
